package newFeature;

import java.util.Optional;
import java.util.stream.Collectors;

/**
 * @author LiuYan
 * @date 2023/4/20
 * Optional
 * Java9的多版本JAR包支持、CompletableFuture API的改进
 */
public class OptionalOptimization {
    public static void main(String[] args) {

        // ifPresentOrElse():处理两种情况
        String str = null;
        Optional.ofNullable(str).ifPresentOrElse(s -> {
            System.out.println("被包装的元素为：" + s);
        }, () -> {
            System.out.println("被包装的元素为null");
        });

        // or():如果当前不是null返回自己，如果是null返回替代的值
        Optional.ofNullable(str)
                .or(() -> Optional.of("Optional API"))
                .ifPresent(System.out::println);

        // Optional类增加了stream方法，允许将Optional对象转换为Stream对象，从而可以使用流式操作来处理Optional对象。
        Optional.ofNullable("Optional API").stream().collect(Collectors.toList());


    }
}
